package com.xiangxiao.rpan.storage.service;

import com.xiangxiao.rpan.storage.entity.ReadmeConfig;

import java.util.List;

/**
 * @auther xiangxiao
 * @email 573768011@qq.com
 * @data 2023/11/16 17:36
 */
public interface ReadmeConfigService {

  /**
   * 根据存储源 ID 查询文档配置
   * @param   storageId
   *          存储源ID
   * @return  存储源文档配置列表
   */
  List<ReadmeConfig> findByStorageId(Integer storageId);

  /**
   * 批量保存存储源 readme 配置, 会先删除之前的所有配置(在事务中运行)
   * @param   storageId
   *          存储源 ID
   * @param   readmeConfigList
   *          存储源 readme 配置列表
   */
  void batchSave(Integer storageId, List<ReadmeConfig> readmeConfigList);

  /**
   * 根据存储源指定路径下的 readme 配置，如果指定为兼容模式，则会读取指定目录下的 readme.md 文件.
   * @param 	storageId 存储源 ID
   * @param 	path 存储源路径
   * @param 	compatibilityReadme 是否兼容为读取 readme.md 文件
   * @return  目录下存储源 readme 配置
   */
  ReadmeConfig getByStorageAndPath(Integer storageId, String path, Boolean compatibilityReadme);


  /**
   * 根据存储源指定路径下的 readme 配置(getByStorageAndPath方法内部使用)
   * @param   storageId 存储源ID
   * @param   path 文件夹路径
   * @return  存储源 readme 配置列表
   */
  ReadmeConfig findReadmeByPath(Integer storageId, String path);
}
